查看原文
其他

处理器IP厂商的机器学习方案 - CEVA

2017-03-22 唐杉 StarryHeavensAbove
导      读

CEVA作为传统的DSP IP厂商,人工智能是他们重点关注的方向之一。CEVA的方案主要针对视觉应用,是在XM6图像视频处理器的基础上,通过CDNN工具包(包括软件工具和硬件加速器)实现嵌入式的神经网络。XM6基本还是传统的向量处理器架构,兼顾通用的computer vision应用。针对神经网络的设计主要体现在CDNN工具包上。当然,网站的宣传是一回事,最终还是要看它是不是“架构有效,工具好用,价格合理,支持到位”。

CEVA这个处理器IP公司的出镜率虽然没有ARM那么高,但在手机芯片的圈子里也是最重要的IP厂商之一。从2G开始,CEVA的DSP IP就被用在通信基带处理上,TeakLite系列非常成功。在4G时代,联芯基于CEVA DSP打造的SDR平台由于小米的采用也经常在新闻中出现。而且,这个平台后来广泛应用于无人机和一些专网市场(需要支持专门的通信协议或者waveform)也展示了SDR的灵活性,扩展性优势。多媒体方面,特别是图像和视频处理,是CEVA DSP一个主要的应用。前段时间Rockchip在CES2017展示的RV1108就是基于CEVA XM4的。图像视频处理方面的经验,也是他们向人工智能领域拓展最重要的基础。


相比ARM的谨慎,CEVA已经把人工智能放在一个和5G并列的重要位置。在CEVA的主页上,就可以看到:“CEVA-XM6 The Ultimate DeepLearning Platform”这样的标题。点进去之后是对性能的宣传,大家不妨感受一下。

图片来自 www.ceva-dsp.com


下面我们就仔细观察一下CEVA-XM6。


图片来自 www.ceva-dsp.com

从这个架构图来看,XM6基本还是继承之前的DSP的时间,并没有太大的变化。4个scalar单元,两个load/store单元,核心处理是3个向量处理单元VPU。程序(Program MSS)和数据(Data MSS)的子系统通过AXI接口和SoC总线连接。另外就是debug功能(Emulation)和可扩展的指令集(ISA XTEND)和协处理器接口。在CEVA网站上给出了XM6的架构亮点,我们详细解读一下。

  • Innovative vector processor unit (VPU) architecture – ensuring above 95% MAC utilization.

向量处理器单元一般可以一次实现两个向量(vector)的乘法和累加(MAC),是常见的SIMD数据并行的实现方式。MAC的数量决定能够实现的并行度,假设有128个MAC(我记得XM4是128个MAC),则可以同时做128个乘累加。MAC中乘法的位宽也是一个重要指标,一般都支持8bit,16bit和32bit的操作;当然不同的位宽能够并行处理的数量也不一样。如果所有操作数都是16bit,每个乘法有两个操作数,则128个MAC一次可以处理4096比特的向量。那么,是不是MAC越多,并行度就可以越高,处理的效率也就越高呢?不一定。这个就引出了另一个VPU设计的时候重点关注的问题,MAC的利用率。如果算法本身并没有这么强的数据并行性,或者架构设计中不能保证及时给这些MAC提供足够的操作数,那么就会出现很多MAC闲着的情况,也就是MAC的利用率低。这种情况下再多的MAC也提升不了性能。所以,在这个亮点里我更关注的是后半句话“ensuring above 95% MAC utilization”。说实话,这个利用率是很高了。这个数据具体是对于什么样的case,在什么样的条件下得到的?还是一个普遍的数据?其实是有必要进一步说明的。


  • Enhanced Parallel Scatter-Gather Memory Load Mechanism – further improving the performance of vision algorithms, including SLAM and depth mapping

这一条主要是针对数据的不规则性而设计的。简单的内存读取(load)方式就是把一个指定的memory位置的值读取出来。但如果需要读入一个向量,就没这么简单了。特别是当这个向量中的元素不是连续存放,就更麻烦了。这里的Scatter-Gather就是能把一些分布存放的数据一次取出,再组合成一个向量的方法。这个其实在向量DSP设计中也是比较常见的,不算很新鲜的东西。


  • Sliding Window 2.0™ – This patented mechanism takes advantage of pixel overlap in image processing and helps to achieve higher utilization for a wider variety of neural networks and cope with the increasing complexity of these networks

这个设计还是比较重要的。对于CNN网络的处理,确实对于feature map(特征图)的pixel(像素)和kernel(卷积核)做卷积的时候会有很多overlap的情况。虽然这里看不出具体的方法,但如果能有效的挖掘这方面的潜力肯定是有好处的。


  • Optional 32-way SIMD vector floating-point unit that includes the IEEE half precision standard (FP16) and major non-linear operations enhancements

这个没什么多说的,你要是有钱还有需求,可以额外买他们的浮点向量运算单元。对于CNN inference应该用处不大。


  • Other improvements include an enhanced 3D data processing scheme for accelerated CNN performance, a 50% improvement in control code performance versus the CEVA-XM4, a new scalar unit which further reduces code size, multi-core and system integration support

这里说的3D data processing不知道是不是tensor(张量,也就是多维数组)处理的概念。如果是的话,应该对于CNN处理(实际是张量处理)是有好处的。


总结一下,从处理器硬件架构上看,XM6还是CEVA图像视频DSP的延续,只是针对神经网络做了少量的优化。从这个角度来说,有点“旧瓶装新酒”的感觉。当然这种传统的DSP架构的好处就是灵活性,可以支持现有的很多computer vision的算法,这个对于一个computer vision的系统来说,还是很重要的。


不过CEVA也提供了专用的硬件加速器方案,“CEVA Deep Neural Network Hardware Accelerator (CDNN HWA)”。

“CDNN HWA旨在与CEVA-XM系列处理器协同工作,实现深度学习算法的极高性能和极低功耗。 CDNN HWA提供512个MAC /周期,确保最佳的性能,以处理当今最复杂的神经网络。 CDNN加速器可以卸载DSP核心的MAC操作,释放DSP本地MAC单元执行额外的并行任务。 这使CEVA-XM系列核心与CDNN加速器一起工作是一个最佳架构,以支持快速发展的深度学习空间中经历的新的成像算法,网络结构和变化的层类型。”

如果用硬件加速器的话,是不是用XM4+CDNN HWA更划算呢?


这种用传统VLIW/SIMD DSP核+硬件加速器的方式和Synopsys的EV方案也比较相似(这个下次分析),是相对比较稳妥的方法。不过这种方案和更专用的CNN加速器(比如Eyeriss,Cambricon-x和ENVISION ISSCC2017 Deep-Learning Processors文章学习 (三))相比整体效率(PPA,性能,功耗,面积)如何,还有待观察的。


唉,想当年我们自己做的Vector DSP现在要是包装成神经网络处理器说不定就火了。


言归正传吧,说完硬件架构,另一个重要话题就是工具链。CEVA的工具统称为CDNN Toolkit,下图是它在整个开发环境中的位置。


图片来自 www.ceva-dsp.com

CDNN工具包包括CEVA network generator,CDNN软件框架和CDNN硬件加速器。CDNN工具包的关键功能是:使用CEVA网络生成器(PC离线工具),将离线预训练的神经网络自动转换为CEVA-XM内核能够执行的实时嵌入式网络。CDNN2是第二代软件架构,其功能是:

“接收经预训练的网络模型和相关网络权重作为来自离线训练(例如经由“Caffe”和“TensorFlow”框架)的输入到专用CEVA网络生成器,然后自动地将网络转换成实时网络模型 。 基于卷积神经网络(CNN)的应用程序可以通过调用CDNN2实时库并在CEVA-XM系列DSP内核上运行它们来使用这种实时网络模型。”

图片来自 www.ceva-dsp.com


个人感觉,工具链,包括硬件加速器才是CEVA专门针对神经网络做的工作。而这部分的性能如何,对于系统整体性能至关重要。网站上的描述比较笼统,工具链还是得亲自试试才行,也欢迎亲自用过的读者留言介绍一下。

T.S.

相 关 文 章

处理器IP厂商的机器学习方案 - 背景

处理器IP厂商的机器学习方案 - ARM

嵌入式机器学习处理器的技术挑战和机会

初创公司在人工智能芯片(IP)领域的机会

当我们设计一个专用处理器的时候我们在干什么?(指令集)

当我们设计一个专用处理器的时候我们在干什么?(微结构)

当我们设计一个专用处理器的时候我们在干什么?(设计方法&工具)

ISSCC2017 Deep-Learning Processors导读文章汇总

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存